package com.agileboot.domain.performance.submission.command;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.validation.constraints.PositiveOrZero;
import lombok.Data;

/**
 * 提交绩效上报项的命令对象
 */
@Data
public class AddSubmissionCommand {

    @NotNull(message = "考核年度不能为空")
    protected Integer assessmentYear;

    @NotBlank(message = "一级分类不能为空")
    @Size(max = 50, message = "一级分类长度不能超过50个字符")
    protected String mainCategory;

    @NotBlank(message = "二级分类不能为空")
    @Size(max = 100, message = "二级分类长度不能超过100个字符")
    protected String subCategory;

    @NotBlank(message = "三级分类不能为空")
    @Size(max = 150, message = "三级分类长度不能超过150个字符")
    protected String itemCategory;

    @NotBlank(message = "成果名称不能为空")
    @Size(max = 255, message = "成果名称长度不能超过255个字符")
    protected String title;

    @NotNull(message = "用户自报的成果总分不能为空")
    @PositiveOrZero(message = "成果总分不能为负")
    protected Double userReportedScore;

    protected String status;

    protected Integer currentAuditLevel;

    protected String rejectionReason;

    protected String fileList;

    protected String detailsJson;

    protected String allocationDetails = "[]";

    protected Double ownerScore;


}
